A network switch is a device that forwards data packets from a source network component or components to a destination network component or components. Typically, a network switch receives data packets from a source network component on a first set or sets of ports (“Ingress ports”) and forwards data packets to a destination network component or components on a second set or sets of ports (“egress ports”).
Currently, network switches are being developed to improve device performance. The performance of a network switch may be characterized using several metrics including connectivity. Connectivity relates to the number of ingress ports and egress ports that the network switch can interconnect. The connectivity of a switch affects the device's switching capacity.
High system availability is a key requirement in the design of ATM, IP, data, voice or multimedia switching systems. High availability in such systems is typically achieved by the use of redundant common control hardware, and redundant switching fabrics. In addition the line cards actually carrying the user traffic may be redundant in either 1 for 1, or 1 for N configurations. If a protected line cards fails, or is removed the back up or standby line card takes over. Typically it is required that this switch over occurs in less than 20 ms, in order to minimize impact on user data.
Currently to achieve the fast switchover times required, it is necessary to embed special logic within the hardware that makes up the switch fabric. Hardware mechanisms are used because it is a requirement for this type of product that traffic flow be reestablished in less than 20 ms. For connection based networking applications such as are supported in ATM, it is not possible to reestablish tens of thousands of connections within this period of time by using software connection re-routing.
There are two models that are used today in switch fabrics to achieve the required switch over time. One way that this may be accomplished is by using a control mechanism within the switch fabric that facilitates logical to physical port mapping. The switch fabric resulting from this approach can support 1 actual card for 1 standby card sparing as well as several cards (N) with one standby card sparing. Another way to achieve the required switching time is by replicating the data so that the same information simultaneously arrives at the two line cards which are part of the sparing group, (note this method cannot support the 1 for N application).
In the first case the switching fabric is controlled via a central entity which directly controls the internal routing of frames or cells across the switching fabric. When a failure of the active destination line card is detected then the central switch software control mechanism in conjunction with the special capability built into the switching fabric maps all traffic with the logical port number associated with the destination card to the new physical port address of the newly active card.
It should be noted that it is the failure of the destination card that causes the re-mapping to occur, and the software within the source card (which may also be redundant) is not involved in dealing with the destination card failure recovery procedures.
This redundancy switchover mechanism is dependent on a centralized software control system that can manage the state of all line cards within the switching fabric and special facilities built into the switching fabric that provides for support of the physical to logical port mapping, and supports the re-mapping of traffic under the control of a centralized software control.
In addition, to avoid head of line blocking, the source line card has individual queue and traffic management structures and one or more fabric ingress buffers associated with every destination fabric port in the system. As the number of fabric ports in the system grows then the number of ingress queues and buffers within the line cards also grows. These queues and buffers are directly mapped to a physical destination port on the fabric. In the case where one for one line card redundancy is employed, this results in a wasting of the queue and buffer resources, which becomes a significant implementation problem when the number of fabric ports increases to 100 or more.
In the second case line card redundancy is achieved by replicating the ingress traffic to the two destination ports associated with the redundant line card pair. The difficulty here is determining where this data replication occurs. If it occurs in the ingress line card then the load transmitted into the fabric is doubled. This could result in reducing by half the usable switching capacity of the fabric. The other place where replication is possible is within the fabric itself. This is possible without impacting the switching fabric capacity. However, the problem here is that commercially available high capacity switching fabric ASICs or systems may not be designed with this capability. It therefore becomes necessary to create a line card redundancy capability “outside” of the actual switching fabric as part of the line card interface that connects to a switching fabric port.
New high capacity switching systems are being developed that consist of multiple shelves that provide scalability and rely on a distribution of the software responsible for the control of the hardware. In addition commercially available solutions provide the ASICs required to build these high capacity switches. However, in many cases these switching ASICs are not designed to support the redundancy model previously described.